iT邦幫忙

2023 iThome 鐵人賽

DAY 15
0

昨天已經成功使用了"install()"命令安裝標頭檔和庫到指定位置了,可是要怎麼刪除呢?
當然可以使用土法煉鋼的方法 -- 手動去安裝路徑刪除檔案,但其實還有更方便的方法來快速地解除安裝。

範例

在昨天的 build 資料夾中,使用$ make install 指令之後會發現產生了名為 install_manifest.txt 的文字檔。

kai@esoc:~/2023_iT_CMake/Day14/範例1在內部安裝/MathFunctions/build$ tree -L 1
.
├── CMakeCache.txt
├── CMakeFiles
├── cmake_install.cmake
├── install_manifest.txt      <------- 會產生這個安裝規則檔案 ⭐
├── libmysqrt.so -> libmysqrt.so.1
├── libmysqrt.so.1 -> libmysqrt.so.1.0.0
├── libmysqrt.so.1.0.0
└── Makefile

而 install_manifest.txt 的內容就是我們安裝的檔案與其安裝位置。

// install_manifest.txt 內容
/home/kai/2023_iT_CMake/Day14/範例1在內部安裝/MathFunctions/../Main/lib/libmysqrt.so.1.0.0
/home/kai/2023_iT_CMake/Day14/範例1在內部安裝/MathFunctions/../Main/lib/libmysqrt.so.1
/home/kai/2023_iT_CMake/Day14/範例1在內部安裝/MathFunctions/../Main/lib/libmysqrt.so
/home/kai/2023_iT_CMake/Day14/範例1在內部安裝/MathFunctions/../Main/include/mysqrt.h

有了這個安裝路徑檔,就可以使用Liunx的 xargs 搭配 rm 命令讀取安裝路徑檔並依此刪除檔案。

語法

xargs

定義:用於產生指令的參數,所以今天會使用xargs讀取install_manifest.txt裡面的內容,當作是 rm 的輸入參數。

$ xargs [options] [command]

rm

定義:刪除檔案

$ rm [options] [/path/to/file1] [/path/to/file2]

實做範例

1. 先進入昨天的 build 資料夾中

$ cd ~/2023_iT_CMake/Day14/範例1在內部安裝/MathFunctions/build

2. 使用xargs讀取install_manifest.txt內容,並當做 rm 的刪除目標

$ xargs rm < install_manifest.txt

3. 檢查是否正確刪除

kai@esoc:~/2023_iT_CMake/Day14/範例1在內部安裝/Main$ tree -L 2
.
├── build
├── CMakeLists.txt
├── include
├── lib
└── src
    └── main.cpp

可以發現昨天安裝的檔案已經被刪除了。

Reference

10.6.6 參數代換: xargs
6.2.2 複製、刪除與移動: cp, rm, mv


上一篇
[Day 14] 庫的安裝方式
下一篇
[Day 16] 使用包管理器管理庫
系列文
建構屬於自己的C/C++專案 : 我的30天CMake學習之旅29
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言